package com.sagereal.soundrecorder.utils;

import android.media.MediaMetadataRetriever;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 多媒体音频文件数据获取的工具类
 */
public class AudioInfoUtils {
    private MediaMetadataRetriever mediaMetadataRetriever;//获取音频文件相关的工具类
    private AudioInfoUtils() {}
    private static AudioInfoUtils utils;
    public static AudioInfoUtils getInstance(){
        if (utils==null) {
            synchronized (AudioInfoUtils.class){
                if (utils==null) {
                    utils = new AudioInfoUtils();
                }
            }
        }
        return utils;
    }

    public long getAudioFileDuration(String filePath){
        long duration = 0;
        if (mediaMetadataRetriever==null) {
            mediaMetadataRetriever = new MediaMetadataRetriever();
        }
        mediaMetadataRetriever.setDataSource(filePath);
        String s = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
        duration = Long.parseLong(s);
        return duration;
    }

    public String getAudioFileFormatDuration(String format,Long duration){
        duration-=8*3600*1000;
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(new Date(duration));
    }
    /* 转换成固定类型的时长 HH:mm:ss*/
    public String getAudioFileFormatDuration(Long duration){
        return getAudioFileFormatDuration("HH:mm:ss",duration);
    }

    /**
     * 获取多媒体文件的艺术家
     */
    public String getAudioFileArtist(String filePath){
        if (mediaMetadataRetriever==null) {
            mediaMetadataRetriever = new MediaMetadataRetriever();
        }
        mediaMetadataRetriever.setDataSource(filePath);
        String artist = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
        return artist;
    }

    public void releaseRetriever(){
        if (mediaMetadataRetriever!=null) {
            mediaMetadataRetriever.release();
            mediaMetadataRetriever = null;
        }
    }

}
